Opencv均值漂移pyrMeanShiftFiltering彩色图像分割流程剖析

#include "opencv2/highgui/highgui.hpp"  
#include "opencv2/core/core.hpp"  
#include "opencv2/imgproc/imgproc.hpp"  

using namespace cv;
using namespace std;

int main(int argc)
{
    Mat img = imread("kuang1.jpg"); //读入图像,RGB三通道    
    resize(img, img, Size(img.cols / 7, img.rows / 7), 0, 0, INTER_LINEAR);
    imshow("原图像", img);
    Mat res; //分割后图像  
    int spatialRad = 20;  //空间窗口大小  
    int colorRad = 20;   //色彩窗口大小  
    int maxPyrLevel = 3;  //金字塔层数  
    pyrMeanShiftFiltering(img, res, spatialRad, colorRad, maxPyrLevel); //色彩聚类平滑滤波  
    imshow("res", res);
    imwrite("pyrMeanShiftFiltering_RGB.jpg",res);
    Mat img_hsv,res_hsv;
    cvtColor(img, img_hsv, CV_BGR2HSV);
    pyrMeanShiftFiltering(img_hsv, res_hsv, spatialRad, colorRad, maxPyrLevel);
    imshow("res_hsv", res_hsv);
    imwrite("pyrMeanShiftFiltering_HSV.jpg",res_hsv);

    waitKey();
    return 0;
}